<html>
<head><meta charset="utf-8"><title>design meeting 2019.05.17 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html">design meeting 2019.05.17</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="165902147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902147">(May 17 2019 at 13:56)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span> ! We're going to be having our first ever design meeting here in <strong>5 minutes</strong>. The topic of discussion is moving to a parallel rustc. Big thanks <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span> to <span class="user-mention" data-user-id="116122">@simulacrum</span> and <span class="user-mention" data-user-id="116466">@Zoxc</span> for working hard on gathering data over the last week or so.</p>



<a name="165902196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902196">(May 17 2019 at 13:56)</a>:</h4>
<p>You can <a href="https://hackmd.io/s/B1NAo-m3V" target="_blank" title="https://hackmd.io/s/B1NAo-m3V">view the "measurements hackmd file" here</a></p>



<a name="165902294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902294">(May 17 2019 at 13:58)</a>:</h4>
<p>( cc <span class="user-mention" data-user-id="116015">@Alex Crichton</span> and <span class="user-mention" data-user-id="220056">@lwshang</span> )</p>



<a name="165902569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902569">(May 17 2019 at 14:01)</a>:</h4>
<p>Hmm I realize it'd be nice to have the "absolute perf differences" too; <span class="user-mention" data-user-id="116122">@simulacrum</span> there isn't some "quick-n-dirty" way to dump the data into a spreadsheet, is there?</p>



<a name="165902636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902636">(May 17 2019 at 14:02)</a>:</h4>
<p>(Is the data available in json form?)</p>



<a name="165902752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902752">(May 17 2019 at 14:04)</a>:</h4>
<p>Shall we start?</p>



<a name="165902761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902761">(May 17 2019 at 14:04)</a>:</h4>
<p>(Is <span class="user-mention" data-user-id="116466">@Zoxc</span> here?)</p>



<a name="165902785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902785">(May 17 2019 at 14:04)</a>:</h4>
<p>I didn't see them "wave" in the meeting announcement :)</p>



<a name="165902815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902815">(May 17 2019 at 14:05)</a>:</h4>
<p>Did they confirm availability for this slot?</p>



<a name="165902822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902822">(May 17 2019 at 14:05)</a>:</h4>
<p>They were here when we settled on the time</p>



<a name="165902829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902829">(May 17 2019 at 14:05)</a>:</h4>
<p>But in any case we might as well get started</p>



<a name="165902848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902848">(May 17 2019 at 14:05)</a>:</h4>
<p>I'm here =P</p>



<a name="165902860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902860">(May 17 2019 at 14:06)</a>:</h4>
<p>ah for some reason Zulip wasn't updating for me, I'm not sure what you mean by absolute perf differences</p>



<a name="165902901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902901">(May 17 2019 at 14:06)</a>:</h4>
<p>each "row" on perf is expandable if you click the black triangle on the left</p>



<a name="165902905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902905">(May 17 2019 at 14:06)</a>:</h4>
<p>What I meant is seeing not just "20% slower" but "slower by 0.2s" or whatever</p>



<a name="165902912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902912">(May 17 2019 at 14:06)</a>:</h4>
<p>yeah, the data is there, I just have to do the math myself :)</p>



<a name="165902927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902927">(May 17 2019 at 14:06)</a>:</h4>
<p>I will see if I can hack something together</p>



<a name="165902942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902942">(May 17 2019 at 14:07)</a>:</h4>
<p>Anyway, the context is that some time back <span class="user-mention" data-user-id="124287">@mw</span>, <span class="user-mention" data-user-id="116015">@Alex Crichton</span> and I drew up <a href="https://gist.github.com/nikomatsakis/4263d4f55ff290c7c46993035dbeb091" target="_blank" title="https://gist.github.com/nikomatsakis/4263d4f55ff290c7c46993035dbeb091">this rough plan</a> to talk about trying to deploy parallel rustc.</p>



<a name="165902998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165902998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165902998">(May 17 2019 at 14:07)</a>:</h4>
<p>The idea was to deploy in 3 phases, but basically the most important is the first one: enabling parallel compilation (meaning, the use of locks etc) but making it <strong>opt-in</strong>.</p>



<a name="165903057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903057">(May 17 2019 at 14:08)</a>:</h4>
<p>This is a "rough patch" because, if you're not using parallelism for whatever reason, you don't get to recoup the perf benefits.</p>



<a name="165903076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903076">(May 17 2019 at 14:08)</a>:</h4>
<p>At the time, I think we were shooting for performance that said no "major regressions", which we defined as:</p>
<blockquote>
<p>A <strong>major regression</strong> is a regression in compilation time that is both &gt;5% and greater than 1 second.</p>
</blockquote>



<a name="165903105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903105">(May 17 2019 at 14:09)</a>:</h4>
<p>That may or may not be achievable :)</p>



<a name="165903134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903134">(May 17 2019 at 14:09)</a>:</h4>
<p>So <span class="user-mention" data-user-id="116122">@simulacrum</span> (in the <a href="https://hackmd.io/s/B1NAo-m3V" target="_blank" title="https://hackmd.io/s/B1NAo-m3V">parallel measurements doc</a>) has a bunch of useful links to various measurements</p>



<a name="165903234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903234">(May 17 2019 at 14:11)</a>:</h4>
<p>(are there more whole-crate-graph numbers on the way?)</p>



<a name="165903268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903268">(May 17 2019 at 14:11)</a>:</h4>
<p>Anyway, the point of this meeting I would say is to:</p>
<ul>
<li>Decide what criteria we want to deploy the plan</li>
<li>This includes perf measurements</li>
<li>But probably talking over other concerns. I've heard two but there may be more:<br>
    - Maintenance -- the design is not, I think, that broadly documented or understood. That's also sort of par for the course in rustc. Do we want to try to change that? Before/after we deploy? :) What will happen when bugs come up?<br>
    - This will make perf profiling more complex (raised by <span class="user-mention" data-user-id="120989">@nnethercote</span>) because instruction measurements are less correlated to overall perf (but note we already have parallel llvm enabled)</li>
</ul>



<a name="165903270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903270">(May 17 2019 at 14:11)</a>:</h4>
<p>it's somewhat slow to collect them (same as with regular perf) -- if we have specific requests I can kick those off but we probably won't have them by meeting</p>



<a name="165903349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903349">(May 17 2019 at 14:12)</a>:</h4>
<p>Should we start by reviewing the measurements?</p>



<a name="165903353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903353">(May 17 2019 at 14:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> cargo with <code>-t4 -j4</code> would be interesting</p>



<a name="165903373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903373">(May 17 2019 at 14:12)</a>:</h4>
<p>The perf.r-l.o section has:</p>
<p>Wall time, single crate:</p>
<ul>
<li><a href="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-8&amp;stat=wall-time" target="_blank" title="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-8&amp;stat=wall-time">single vs. -Zthreads=8</a> - 40-60% speedup on average; no significant performance hits</li>
<li><a href="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-4&amp;stat=wall-time" target="_blank" title="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-4&amp;stat=wall-time">single vs. -Zthreads=4</a> - 35-50% speedup on average; no significant performance hits</li>
<li><a href="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-2&amp;stat=wall-time" target="_blank" title="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-2&amp;stat=wall-time">single vs. -Zthreads=2</a> - 20-30% speedup on average; no significant performance hits (most tiny, i.e., &lt;1 second)</li>
<li><a href="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-1&amp;stat=wall-time" target="_blank" title="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-1&amp;stat=wall-time">single vs. -Zthreads=1</a> - 10%-20% slowdown (i.e., overhead of parallelism)</li>
</ul>



<a name="165903384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903384">(May 17 2019 at 14:12)</a>:</h4>
<p>I'm curious about the final line, this is why I was asking about absolute measurements</p>



<a name="165903415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903415">(May 17 2019 at 14:13)</a>:</h4>
<p>e.g., helloworld-check is 36% slower but it's like 0.6 to 0.7 :)</p>



<a name="165903427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903427">(May 17 2019 at 14:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> <code>-tX-j1</code> means that rustc will never be allowed to use more than one thread (which is useful for measuring overhead but doesn't allow measuring speedups)</p>



<a name="165903445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903445">(May 17 2019 at 14:13)</a>:</h4>
<p>(Oh, I am also remembering now... back when we were talking about NLL performance, someone -- who was it? -- was citing bits of research  about how much slowdown there is before things become noticeable)</p>



<a name="165903503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903503">(May 17 2019 at 14:14)</a>:</h4>
<p>I want to say scottmcm</p>



<a name="165903616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903616">(May 17 2019 at 14:15)</a>:</h4>
<p>okay spreadsheet with absolute data is up but no formulas run yet</p>



<a name="165903644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903644">(May 17 2019 at 14:15)</a>:</h4>
<p>see link in document</p>



<a name="165903647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903647">(May 17 2019 at 14:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/rust-lang-nursery/rustc-perf/issues/192#issuecomment-394611567" target="_blank" title="https://github.com/rust-lang-nursery/rustc-perf/issues/192#issuecomment-394611567">https://github.com/rust-lang-nursery/rustc-perf/issues/192#issuecomment-394611567</a></p>



<a name="165903648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903648">(May 17 2019 at 14:15)</a>:</h4>
<p><code>packed-simd</code> takes a 20% perf hit and it isn't small.</p>



<a name="165903650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903650">(May 17 2019 at 14:15)</a>:</h4>
<p>oh, nice</p>



<a name="165903806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903806">(May 17 2019 at 14:17)</a>:</h4>
<p>(sorry woke up recently, but I"m now following here!)</p>



<a name="165903926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903926">(May 17 2019 at 14:19)</a>:</h4>
<blockquote>
<p><code>packed-simd</code> takes a 20% perf hit and it isn't small.</p>
</blockquote>
<p>yeah, that's one of the few I've found so far</p>



<a name="165903942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903942">(May 17 2019 at 14:19)</a>:</h4>
<p>packed-simd doesn't take as big a hit in the <a href="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-1&amp;stat=wall-time" target="_blank" title="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-1&amp;stat=wall-time">single vs. -Zthreads=1</a> data, FWIW</p>



<a name="165903958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903958">(May 17 2019 at 14:19)</a>:</h4>
<p>the hit depends also on opt, debug, check</p>



<a name="165903959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903959">(May 17 2019 at 14:19)</a>:</h4>
<blockquote>
<p>(Oh, I am also remembering now... back when we were talking about NLL performance, someone -- who was it? -- was citing bits of research  about how much slowdown there is before things become noticeable)</p>
</blockquote>
<p>It's probably from the book "Usability Engineering" which has:</p>
<ul>
<li>0.1 seconds — Operations that are completed in 100ms or fewer will feel instantaneous to the user.</li>
<li>1 second — Operations that take 1 second to finish are generally OK, but the user will feel the pause.</li>
<li>10 seconds — If an operation takes 10 seconds or more to complete, you’ll struggle to maintain the user’s attention.</li>
</ul>



<a name="165903968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165903968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165903968">(May 17 2019 at 14:19)</a>:</h4>
<p>which is another way that might be useful to slice the data</p>



<a name="165904118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904118">(May 17 2019 at 14:21)</a>:</h4>
<p>(I guess we have no idea why packed-simd in particular takes a hit?)</p>



<a name="165904188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904188">(May 17 2019 at 14:22)</a>:</h4>
<p>a lot of the big percentages on the <a href="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-1&amp;stat=wall-time" target="_blank" title="https://perf.rust-lang.org/compare.html?start=single-threaded&amp;end=parallel-rustc-1&amp;stat=wall-time">single vs. -Zthreads=1</a> data seems like it originates from regressions solely in "patched incremental" ... does that sound plausible&gt;?</p>



<a name="165904211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904211">(May 17 2019 at 14:22)</a>:</h4>
<p>(any ideas as to why "patched incremental" in particular would take a signficant hit?)</p>



<a name="165904245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904245">(May 17 2019 at 14:23)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span>  Yes. Incremental is lock heavy. <a href="https://github.com/rust-lang/rust/pull/60035" target="_blank" title="https://github.com/rust-lang/rust/pull/60035">https://github.com/rust-lang/rust/pull/60035</a> helps with that</p>



<a name="165904246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904246">(May 17 2019 at 14:23)</a>:</h4>
<p>it might involve more locking than the other workloads</p>



<a name="165904263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904263">(May 17 2019 at 14:23)</a>:</h4>
<p>(perhaps also because those are already starting off as small numbers overall, and so the percentages get exagerrated)</p>



<a name="165904384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904384">(May 17 2019 at 14:24)</a>:</h4>
<p>(ah my hypothesis is wrong anyway; there are tests where the "clean" build was the one with the big perf hit, and not their "patched incremental"  variants)</p>



<a name="165904415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904415">(May 17 2019 at 14:25)</a>:</h4>
<p>that may partially depend on whether the incremental case is hitting the happy path -- i.e., being actually incremental</p>



<a name="165904436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904436">(May 17 2019 at 14:25)</a>:</h4>
<p>(which may cause more locks to be hit)</p>



<a name="165904443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904443">(May 17 2019 at 14:25)</a>:</h4>
<p>I think the incremental cases can allow for more of a hit because they don't aggregate up so much</p>



<a name="165904446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904446">(May 17 2019 at 14:26)</a>:</h4>
<p>but I'm not sure if that's accurate from how incremental is implemented</p>



<a name="165904498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904498">(May 17 2019 at 14:26)</a>:</h4>
<p>i.e. you are usually only re-compiling the leaf crates incrementally</p>



<a name="165904564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904564">(May 17 2019 at 14:27)</a>:</h4>
<p>I think the perf.rlo numbers look OK, with a few outliers (must of them synthetic tests)</p>



<a name="165904572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904572">(May 17 2019 at 14:27)</a>:</h4>
<p>true -- it is worth noting that all of perf data is "leaf" compilations (i.e., single-crate)</p>



<a name="165904576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904576">(May 17 2019 at 14:27)</a>:</h4>
<p>I'd be more interested in the whole-crate-graph scenarios</p>



<a name="165904635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904635">(May 17 2019 at 14:28)</a>:</h4>
<p>the things that are "major regressions" from what I can tell:</p>
<ul>
<li>packed-simd-debug (baseline-incremental, clean) </li>
<li>packed-simd-opt (clean)</li>
<li>script-servo-debug (patch/incremental)</li>
<li>ctfe-stress-2-check</li>
</ul>



<a name="165904638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904638">(May 17 2019 at 14:28)</a>:</h4>
<p>whereas at least in the rustc whole-crate-graph (i.e., x.py build --stage 0) we see significantly worse performance with multi-threaded as total runtime</p>



<a name="165904644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904644">(May 17 2019 at 14:28)</a>:</h4>
<blockquote>
<p>I think the perf.rlo numbers look OK, with a few outliers (must of them synthetic tests)</p>
</blockquote>
<p>I tend to agree with this</p>



<a name="165904648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904648">(May 17 2019 at 14:28)</a>:</h4>
<p>This is the sort of testing though that we wanted to make a call on internals for right? (whole crate graph testing)</p>



<a name="165904721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904721">(May 17 2019 at 14:29)</a>:</h4>
<p>(notably, script-servo-debug starts to have perf improvements of 17% with even 2 cores)</p>



<a name="165904726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904726">(May 17 2019 at 14:29)</a>:</h4>
<p>I'm personally suspecting that the rustc case is fairly representative of many crate graphs -- and that we gain more from coarse parallelism than from fine grained parallelism, at least in the --release case</p>



<a name="165904732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904732">(May 17 2019 at 14:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> we wanted to have some numbers for this meeting already</p>



<a name="165904824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904824">(May 17 2019 at 14:30)</a>:</h4>
<p>I may also be misunderstanding the purpose of the mtg here, but is this trying to provide data that we shouldn't turn on parallel -j1 nightlies because the overhead in singlethreaded mode is too high?</p>



<a name="165904847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904847">(May 17 2019 at 14:30)</a>:</h4>
<p>we're trying to decide whether to kick off the plan, basically, yes</p>



<a name="165904865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904865">(May 17 2019 at 14:31)</a>:</h4>
<p>I have to say that the rustc numbers are a bit scary</p>



<a name="165904878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904878">(May 17 2019 at 14:31)</a>:</h4>
<p>well it also sounds like <span class="user-mention" data-user-id="116122">@simulacrum</span> is seeing evidence that there is negative return in a very important use case</p>



<a name="165904891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904891">(May 17 2019 at 14:31)</a>:</h4>
<p>the cargo-tX-j1 results (that seem to be gone again) were rather interesting actually</p>



<a name="165904902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904902">(May 17 2019 at 14:31)</a>:</h4>
<p>in what way?</p>



<a name="165904916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904916">(May 17 2019 at 14:32)</a>:</h4>
<p>they showed no wall-time regression</p>



<a name="165904967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904967">(May 17 2019 at 14:32)</a>:</h4>
<p>although the single-threaded compiler was not tested, I think</p>



<a name="165904976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904976">(May 17 2019 at 14:32)</a>:</h4>
<p>so, nevermind :/</p>



<a name="165904979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904979">(May 17 2019 at 14:32)</a>:</h4>
<p>yeah, I didn't get a chance to run that</p>



<a name="165904987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904987">(May 17 2019 at 14:32)</a>:</h4>
<p>it's really just showing -t1-j1</p>



<a name="165904992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904992">(May 17 2019 at 14:32)</a>:</h4>
<p>at least the jobserver seems to work :)</p>



<a name="165904999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165904999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165904999">(May 17 2019 at 14:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> : what was the invocation used to gather the rustc-stage0 numbers?</p>



<a name="165905033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905033">(May 17 2019 at 14:33)</a>:</h4>
<p><code>x.py build --stage 0 </code> with <code>rustc =</code> set to the parallel compiler in bootstrap</p>



<a name="165905109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905109">(May 17 2019 at 14:34)</a>:</h4>
<blockquote>
<p>at least the jobserver seems to work :)</p>
</blockquote>
<p>i.e., doesn't crash? :)</p>



<a name="165905120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905120">(May 17 2019 at 14:34)</a>:</h4>
<p>huh, do the <code>rustc stage 0 compilation</code> look really bad?</p>



<a name="165905123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905123">(May 17 2019 at 14:34)</a>:</h4>
<p>or what did you mean by that?</p>



<a name="165905128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905128">(May 17 2019 at 14:34)</a>:</h4>
<p>it's worth noting that the parallel compiler there is a beta-versioned parallel compiler (i.e., not the most recent possible parallel compiler)</p>



<a name="165905139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905139">(May 17 2019 at 14:34)</a>:</h4>
<p>which is probably not great in hindsight :/</p>



<a name="165905140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905140">(May 17 2019 at 14:34)</a>:</h4>
<p>i.e., doing the stage0 build?</p>



<a name="165905141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905141">(May 17 2019 at 14:34)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> : <a href="https://hackmd.io/s/B1NAo-m3V#Whole-crate-graph-data-%E2%80%93-from-Mark%E2%80%99s-computer-8-core-16-thread" target="_blank" title="https://hackmd.io/s/B1NAo-m3V#Whole-crate-graph-data-%E2%80%93-from-Mark%E2%80%99s-computer-8-core-16-thread">https://hackmd.io/s/B1NAo-m3V#Whole-crate-graph-data-%E2%80%93-from-Mark%E2%80%99s-computer-8-core-16-thread</a></p>



<a name="165905160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905160">(May 17 2019 at 14:35)</a>:</h4>
<p>(if i understand correctly)</p>



<a name="165905179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905179">(May 17 2019 at 14:35)</a>:</h4>
<p>Here's some numbers I got from rustc compilation <a href="https://github.com/rust-lang/rust/pull/59530#issuecomment-481557551" target="_blank" title="https://github.com/rust-lang/rust/pull/59530#issuecomment-481557551">https://github.com/rust-lang/rust/pull/59530#issuecomment-481557551</a></p>



<a name="165905197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905197">(May 17 2019 at 14:35)</a>:</h4>
<p>hm, is that after x.py clean?</p>



<a name="165905201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905201">(May 17 2019 at 14:35)</a>:</h4>
<blockquote>
<blockquote>
<p>at least the jobserver seems to work :)</p>
</blockquote>
<p>i.e., doesn't crash? :)</p>
</blockquote>
<p>it keeps the time constant, which suggest that now more threads are used than the jobserver allows</p>



<a name="165905265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905265">(May 17 2019 at 14:36)</a>:</h4>
<p>I wonder why <span class="user-mention" data-user-id="116466">@Zoxc</span>'s numbers seem so different. I guess it makes sense for us to do a bit more testing here.</p>



<a name="165905282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905282">(May 17 2019 at 14:36)</a>:</h4>
<p>Especially considering those are <code>stage1</code> numbers</p>



<a name="165905304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905304">(May 17 2019 at 14:37)</a>:</h4>
<p>yeah I am sitting here wondering if there's something goofy with <code>--stage 0</code> ?</p>



<a name="165905319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905319">(May 17 2019 at 14:37)</a>:</h4>
<p>So, it seems safe to say:</p>
<ul>
<li>perf looks quite good</li>
<li>rustc and whole-crate-graph numbers are a bit murkier</li>
</ul>



<a name="165905321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905321">(May 17 2019 at 14:37)</a>:</h4>
<p>Well, so it's worth noting that this is a) a beta compiler essentially (just compiled with --enable-parallel-compiler)</p>



<a name="165905360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905360">(May 17 2019 at 14:38)</a>:</h4>
<p>I'm also not sure how <span class="user-mention" data-user-id="116466">@Zoxc</span> collected data</p>



<a name="165905387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905387">(May 17 2019 at 14:38)</a>:</h4>
<p>Didn't we like <em>just</em> branch a beta -- or aren't we about to?</p>



<a name="165905389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905389">(May 17 2019 at 14:38)</a>:</h4>
<p>maybe we need to start sharing benchmarking scripts? just to keep everyone in sync?</p>



<a name="165905407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905407">(May 17 2019 at 14:38)</a>:</h4>
<p><code>RUSTFLAGS="-Zthreads=4" perf stat -o multi-threaded-t4-j16 -ddd --repeat=10 --pre "./x.py clean" -- ./x.py build -j16 --stage 0</code></p>



<a name="165905412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905412">(May 17 2019 at 14:38)</a>:</h4>
<p>I'm wondering if we should spend a bit of time looking beyond the perf measurements -- it seems like we want to do more measurements on rustc at minimum.</p>



<a name="165905436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905436">(May 17 2019 at 14:39)</a>:</h4>
<p>I think we should not focus on rustc too much</p>



<a name="165905444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905444">(May 17 2019 at 14:39)</a>:</h4>
<p>it's always been a weird special case</p>



<a name="165905467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905467">(May 17 2019 at 14:39)</a>:</h4>
<p>I feel like it's kind of one that important to <em>us</em> in a number of ways =)</p>



<a name="165905470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905470">(May 17 2019 at 14:39)</a>:</h4>
<p>okay, but we should select another large crate graph then</p>



<a name="165905479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905479">(May 17 2019 at 14:39)</a>:</h4>
<ul>
<li>servo</li>
<li>cranelift</li>
<li>ripgrep</li>
</ul>



<a name="165905531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905531">(May 17 2019 at 14:40)</a>:</h4>
<p>from the document</p>



<a name="165905533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905533">(May 17 2019 at 14:40)</a>:</h4>
<p>But definitely <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span> to gathering more crate graph numbers</p>



<a name="165905553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905553">(May 17 2019 at 14:40)</a>:</h4>
<p>I can try to get us numbers on all three of those this weekend; unfortunately it takes a lot of time :/</p>



<a name="165905581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905581">(May 17 2019 at 14:40)</a>:</h4>
<p>Yeah :/ I'm game to run some scripts too</p>



<a name="165905587"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905587" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905587">(May 17 2019 at 14:40)</a>:</h4>
<p>but regardless - I think we should maybe discuss the next few items on the agenda</p>



<a name="165905594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905594">(May 17 2019 at 14:40)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> I infer it takes a lot of time in part because you are exploring multiple dimensions, varying both thread-count and job-count, yes?</p>



<a name="165905612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905612">(May 17 2019 at 14:41)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> yes, and running each build at least 3-4 times to get the +/- down lower)</p>



<a name="165905631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905631">(May 17 2019 at 14:41)</a>:</h4>
<p>as you can see in the current data multi-threaded builds even with 10 runs are still +/- 8% or so</p>



<a name="165905644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905644">(May 17 2019 at 14:41)</a>:</h4>
<p>(I'm not sure if I have much in the way of suggestions as to how to address that combinatoric blowup, but it seems worth trying to reduce in some way...)</p>



<a name="165905719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905719">(May 17 2019 at 14:42)</a>:</h4>
<p>( I feel like we are mostly interested in the 1 thread and maybe like 4 thread case )</p>



<a name="165905725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905725">(May 17 2019 at 14:42)</a>:</h4>
<p>or 2 thread, something like that</p>



<a name="165905745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905745">(May 17 2019 at 14:42)</a>:</h4>
<p>It would certainly reduce the blowup if we do 1, 2, 4 threads / -j{4,8,16} perhaps?</p>



<a name="165905748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905748">(May 17 2019 at 14:42)</a>:</h4>
<p>not sure on the <code>-j</code> bit</p>



<a name="165905758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905758">(May 17 2019 at 14:43)</a>:</h4>
<p>yes, but I do think its interesting to have comparisons against increasing the job-count while keeping thread count fixed</p>



<a name="165905779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905779">(May 17 2019 at 14:43)</a>:</h4>
<p>which seems to be what <span class="user-mention" data-user-id="116122">@simulacrum</span> was doing</p>



<a name="165905795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905795">(May 17 2019 at 14:43)</a>:</h4>
<div class="codehilite"><pre><span></span>echo 0 | sudo tee /proc/sys/kernel/nmi_watchdog
for cargo_threads in 2 3 4 6 8 16; do
for rust_threads in 1 2 3 4 6 8 16 ; do
RUSTC=/home/mark/.rustup/toolchains/6f087ac1c17723a84fd45f445c9887dbff61f8c0/bin/rustc RUSTFLAGS=&quot;-Zthreads=$rust_threads&quot; perf stat -o &quot;/home/mark/perf-results/cargo-multi-threaded-t$rust_threads-j$cargo_threads&quot; -ddd --repeat=4 --pre &quot;cargo clean&quot; cargo build --release -j$cargo_threads
done
done
echo 1 | sudo tee /proc/sys/kernel/nmi_watchdog
</pre></div>



<a name="165905861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905861">(May 17 2019 at 14:44)</a>:</h4>
<p>If you're varying the job count, use 1 CGU to avoid LLVM threads affecting the result</p>



<a name="165905863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905863">(May 17 2019 at 14:44)</a>:</h4>
<p>okay. my most immediate suggestion: don't do N x M</p>



<a name="165905873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905873">(May 17 2019 at 14:44)</a>:</h4>
<p>at least, not for now</p>



<a name="165905878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905878">(May 17 2019 at 14:44)</a>:</h4>
<p>do instead 2 x N + 2 x M</p>



<a name="165905892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905892">(May 17 2019 at 14:44)</a>:</h4>
<p>(does that make sense?)</p>



<a name="165905894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905894">(May 17 2019 at 14:44)</a>:</h4>
<p>anyway, the other item was documentation and maintenance</p>



<a name="165905903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905903">(May 17 2019 at 14:44)</a>:</h4>
<p>let's break the measurement stuff out into a separate topic</p>



<a name="165905926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905926">(May 17 2019 at 14:45)</a>:</h4>
<p>I guess the real question, ultimately, is when bug reports come, do we feel like we're gonna' be able to fix them :)</p>



<a name="165905952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905952">(May 17 2019 at 14:45)</a>:</h4>
<p>only if we can replicate them</p>



<a name="165905977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165905977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165905977">(May 17 2019 at 14:45)</a>:</h4>
<p>I feel like there are a fair number of moving parts in the system -- I don't understand it that well, but off the top of my head:</p>
<ul>
<li>how is interning working</li>
<li>query results, what is locking strategy (that's actually maybe simple-ish?)</li>
<li>what other bits of shared state are replicated in non-trivial ways?</li>
<li>tcx splitting and interning?</li>
</ul>



<a name="165906093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906093">(May 17 2019 at 14:46)</a>:</h4>
<p>should we try to document them? for sure some of these things (<em>cough</em> interning) are only barely documented today, though the <span class="user-group-mention" data-user-group-id="1380">@WG-learning</span> group is sort of working on trying to improve that :)</p>



<a name="165906119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906119">(May 17 2019 at 14:47)</a>:</h4>
<p>Interning is pretty much unchanged</p>



<a name="165906136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906136">(May 17 2019 at 14:47)</a>:</h4>
<p>did we basically just put locks around the central hashmaps?</p>



<a name="165906146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906146">(May 17 2019 at 14:47)</a>:</h4>
<p>Yes</p>



<a name="165906148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906148">(May 17 2019 at 14:47)</a>:</h4>
<p>that's an interesting piece of information in itself :)</p>



<a name="165906214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906214">(May 17 2019 at 14:48)</a>:</h4>
<p>Basically RefCell -&gt; Mutex</p>



<a name="165906258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906258">(May 17 2019 at 14:48)</a>:</h4>
<p>I remember that when we decided to merge this stuff there was a fairly "long tail" of random bits of mutexes and the like</p>



<a name="165906290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906290">(May 17 2019 at 14:49)</a>:</h4>
<p>I think my feeling is that it'd be great to try and document the design, perhaps together with the impl of queries -- <span class="user-mention" data-user-id="116466">@Zoxc</span> what are the last few bugs you fixed :)</p>



<a name="165906294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906294">(May 17 2019 at 14:49)</a>:</h4>
<p>Anything here is an interesting piece of information, especially an ELI5-style  overview would be nice.<br>
All e.g. I know about parallel rustc is that some Rc/Cell become Arc/Mutex and something becomes parallel.</p>



<a name="165906301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906301">(May 17 2019 at 14:49)</a>:</h4>
<p>ELI5?</p>



<a name="165906358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906358">(May 17 2019 at 14:50)</a>:</h4>
<p>(I ask about bugs because i'm trying to pull out what are some of the trickier things that may not jump immediately to mind...)</p>



<a name="165906361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906361">(May 17 2019 at 14:50)</a>:</h4>
<p>*explain like I'm 5</p>



<a name="165906369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906369">(May 17 2019 at 14:50)</a>:</h4>
<p>there's this: <a href="https://rust-lang.github.io/rustc-guide/queries/query-evaluation-model-in-detail.html#parallel-query-execution" target="_blank" title="https://rust-lang.github.io/rustc-guide/queries/query-evaluation-model-in-detail.html#parallel-query-execution">https://rust-lang.github.io/rustc-guide/queries/query-evaluation-model-in-detail.html#parallel-query-execution</a></p>



<a name="165906386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906386">(May 17 2019 at 14:50)</a>:</h4>
<p>but it doesn't go into any detail at all</p>



<a name="165906399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906399">(May 17 2019 at 14:50)</a>:</h4>
<p>Ah, yeah. I definitely feel like a "high-level strategy overview with details about interesting add'l cases" would be nice; I'm not sure it's reasonable to put that on <span class="user-mention" data-user-id="116466">@Zoxc</span> to write, but it'd be nice if they could support whoever does</p>



<a name="165906429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906429">(May 17 2019 at 14:51)</a>:</h4>
<p>I guess other topics that jump to mind might be jobserver integration</p>



<a name="165906438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906438">(May 17 2019 at 14:51)</a>:</h4>
<p>Query execution, waiting and cycle handling are the tricky bits</p>



<a name="165906502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906502">(May 17 2019 at 14:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> do you think you'd be game to produce an "outline form" of docs? i.e., what are the interesting bits, and a few brief notes?  I think something like that would be very interesting -- and actually already good docs in and of itself</p>



<a name="165906521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906521">(May 17 2019 at 14:53)</a>:</h4>
<p>but more importantly I think it could be "handed off" to others to work on elaborating and coming back to you with questions</p>



<a name="165906544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906544">(May 17 2019 at 14:53)</a>:</h4>
<p>alternatively, I could try to sketch out what i'm thinking, and you can correct the mistakes I make :)</p>



<a name="165906578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906578">(May 17 2019 at 14:54)</a>:</h4>
<blockquote>
<p>might be jobserver integration</p>
</blockquote>
<p>That too, please, e.g. from the discussion above it wasn't clear why -t and -j options are separate, I though the total number of "tasks" (both threads and processes) are controlled by the jobserver.</p>



<a name="165906606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906606">(May 17 2019 at 14:54)</a>:</h4>
<p><a href="https://internals.rust-lang.org/t/parallelizing-rustc-using-rayon/6606" target="_blank" title="https://internals.rust-lang.org/t/parallelizing-rustc-using-rayon/6606">https://internals.rust-lang.org/t/parallelizing-rustc-using-rayon/6606</a> is still pretty good, but there's some changes from it</p>



<a name="165906707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906707">(May 17 2019 at 14:55)</a>:</h4>
<p>Can we collect <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span>'s questions somewhere and try to answer them?</p>



<a name="165906710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906710">(May 17 2019 at 14:55)</a>:</h4>
<p>and invite others to ask questions like that</p>



<a name="165906712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906712">(May 17 2019 at 14:55)</a>:</h4>
<p>I'm going to make a hackmd :)</p>



<a name="165906790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906790">(May 17 2019 at 14:56)</a>:</h4>
<p>please <a href="https://hackmd.io/XDC24IlWT4OIxYdmIxH4Xg" target="_blank" title="https://hackmd.io/XDC24IlWT4OIxYdmIxH4Xg">add your questions into here</a>  everybody</p>



<a name="165906797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165906797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165906797">(May 17 2019 at 14:56)</a>:</h4>
<p>I think this is actually a good idea :)</p>



<a name="165907247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907247">(May 17 2019 at 15:01)</a>:</h4>
<p>OK, well, we're at the hour point -- this was informative. I think the conclusion was:</p>
<ul>
<li>perf results look good, while we have a few major regressions, they are localized</li>
<li>we should gather more crate data (see the <a href="#narrow/stream/131828-t-compiler/topic/measuring.20parallel.20rustc" title="#narrow/stream/131828-t-compiler/topic/measuring.20parallel.20rustc">measuring parallel rustc</a> topic)</li>
<li>we definitely need documentation -- we are currently <a href="https://hackmd.io/XDC24IlWT4OIxYdmIxH4Xg" target="_blank" title="https://hackmd.io/XDC24IlWT4OIxYdmIxH4Xg">brainstorming questions and things here</a>.</li>
</ul>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> seems to be coordinating the second bullet -- correct?</p>
<p>I am happy to take on the job of coordinating documentation etc though I'll probably pester <span class="user-mention" data-user-id="116466">@Zoxc</span>. I will hopefully try to delegate this to <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> or somebody else from <span class="user-group-mention" data-user-group-id="1380">@WG-learning</span> at some point. =)</p>



<a name="165907283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907283">(May 17 2019 at 15:01)</a>:</h4>
<p>I will try to coordinate first point (see <a href="#narrow/stream/131828-t-compiler/topic/measuring.20parallel.20rustc" title="#narrow/stream/131828-t-compiler/topic/measuring.20parallel.20rustc">https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/measuring.20parallel.20rustc</a>)</p>



<a name="165907336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907336">(May 17 2019 at 15:02)</a>:</h4>
<p>(and I guess bullet two?)</p>



<a name="165907355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907355">(May 17 2019 at 15:02)</a>:</h4>
<p>sorry, I inserted a "0th" bullet :)</p>



<a name="165907364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907364">(May 17 2019 at 15:02)</a>:</h4>
<p>I'd be curious to know if we should dig a bit more into the perf results -- i.e., can we figure out the problems with those major regressions? <span class="user-mention" data-user-id="116466">@Zoxc</span>, you mentioned a pending PR?</p>



<a name="165907406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907406">(May 17 2019 at 15:03)</a>:</h4>
<p>Any other pending improvements, <span class="user-mention" data-user-id="116466">@Zoxc</span>?</p>



<a name="165907412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907412">(May 17 2019 at 15:03)</a>:</h4>
<p>Here's a final question -- who wants to write-up and post a summary comment somewhere... =)</p>



<a name="165907428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907428">(May 17 2019 at 15:03)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/60035" target="_blank" title="https://github.com/rust-lang/rust/pull/60035">https://github.com/rust-lang/rust/pull/60035</a> is pending, but quite large and invasive</p>



<a name="165907563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Iñaki Garay <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907563">(May 17 2019 at 15:05)</a>:</h4>
<p>I think the current  WG-learning todo list is this paper doc <a href="https://paper.dropbox.com/doc/Learning-Working-Group-Ideas--AdBCtWsfHAZYwARoovEhE2PzAg-2R49k1GWZFojHIQ5x1fuB" target="_blank" title="https://paper.dropbox.com/doc/Learning-Working-Group-Ideas--AdBCtWsfHAZYwARoovEhE2PzAg-2R49k1GWZFojHIQ5x1fuB">https://paper.dropbox.com/doc/Learning-Working-Group-Ideas--AdBCtWsfHAZYwARoovEhE2PzAg-2R49k1GWZFojHIQ5x1fuB</a></p>



<a name="165907601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907601">(May 17 2019 at 15:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> To what extent does it make sense to benchmark with a try build from that PR?</p>



<a name="165907613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907613">(May 17 2019 at 15:06)</a>:</h4>
<p>We might be able to get rid of some locks by having large virtual memory allocation for <code>Vec</code>s like the list of symbols</p>



<a name="165907717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907717">(May 17 2019 at 15:07)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> That would probably make a lot of sense, especially to compare it with parallel compiler @ master, which perf can't do</p>



<a name="165907748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907748">(May 17 2019 at 15:07)</a>:</h4>
<p>well, given just-collected data, we can (i.e., PR vs PR is fine with perf)</p>



<a name="165907761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165907761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165907761">(May 17 2019 at 15:07)</a>:</h4>
<p>but I meant the whole crate graph stuff more so</p>



<a name="165908153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165908153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165908153">(May 17 2019 at 15:12)</a>:</h4>
<p>Whole crate graphs have less incremental crates, so probably less important for that PR</p>



<a name="165908238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165908238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165908238">(May 17 2019 at 15:13)</a>:</h4>
<p>okay, I will hold off on anything then for now -- you should be able to compare vs. master if you use <code>parallel-rustc-N</code> where N is the -Zthreads argument on perf</p>



<a name="165912542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165912542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165912542">(May 17 2019 at 16:00)</a>:</h4>
<p>As a final note, <span class="user-mention" data-user-id="125270">@scottmcm</span> wrote to me this:</p>
<blockquote>
<p>Yeah, 20% faster or slower is what the book I have said, as the "Just Noticable Difference"</p>
</blockquote>



<a name="165918020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165918020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165918020">(May 17 2019 at 17:11)</a>:</h4>
<blockquote>
<blockquote>
<p>Yeah, 20% faster or slower is what the book I have said, as the "Just Noticeable Difference"</p>
</blockquote>
</blockquote>
<p>Ref: <a href="https://learning.oreilly.com/library/view/designing-and-engineering/9780321562944/ch05.html#ch05lev2sec2" target="_blank" title="https://learning.oreilly.com/library/view/designing-and-engineering/9780321562944/ch05.html#ch05lev2sec2">https://learning.oreilly.com/library/view/designing-and-engineering/9780321562944/ch05.html#ch05lev2sec2</a></p>



<a name="165918809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.05.17/near/165918809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17.html#165918809">(May 17 2019 at 17:20)</a>:</h4>
<p>That book also includes some latency categories:<br>
- Instantaneous (0.1 - 0.2s) -- like a light switch<br>
- Immediate (0.5 - 1s) -- prompt acknowledgment <br>
- Continuous (2 - 5s) -- flow of conversation<br>
- Captive (7 - 10s) -- "goldfish time" after which people do something else</p>
<p>(Essentially the same as the order of magnitude ones that <span class="user-mention" data-user-id="125250">@Wesley Wiser</span> mentioned earlier)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>